//
//  HRHomePage.swift
//  weiBo
//
//  Created by helong on 16/7/13.
//  Copyright © 2016年 helong. All rights reserved.
//

import UIKit

class HRHomePage: NSObject {

   
    //  数据来源数组
   lazy var weiBoDataArrar:[HRHomePageStatusViewModel] = [HRHomePageStatusViewModel]()
   
    /**
     viewModel 通过KVC字典转模型
     */
    
    func getWeiBoDataArray(pullUpRefresh: Bool, callBack:(isSuccess: Bool, message: String) -> ()){
        //  下拉加载更多请求参数
        var max_id: Int64 = 0
        //  上拉刷新请求参数
        var since_id: Int64 = 0
        
        var message: String = "没有数据刷新"
        
        if pullUpRefresh {//   如果是上拉加载更多
            max_id = weiBoDataArrar.last?.homePageModel?.id ?? 0
            //  防止有一条数据重复
            if max_id > 0 {
                max_id -= 1
            }
        }else{//    如果是下拉刷新
            since_id = weiBoDataArrar.first?.homePageModel?.id ?? 0
            
        }
        //  使用网络工具请求数据
        CZStatusDAL.loadData(max_id, sinceId: since_id) { (statuses) -> () in
            
        
            
        
//        HRNetworkingTool.sharedSessionManager.requestHomePageData (max_id, since_id: since_id){ (response, error) -> () in
//            //  如果有错误
//            if error != nil {
//                callBack(isSuccess: false, message: message)
//            }
//            //  如果response有值
//            guard let dict = response as? [String: AnyObject] else{
//                callBack(isSuccess: false, message: message)
//                return
//            }
//            //  如果dict里面有值
//            guard let dictArray = dict["statuses"] as? [[String: AnyObject]] else{
//                callBack(isSuccess: false, message: message)
//                return
//            }
//            
        
            var tempArr = [HRHomePageStatusViewModel]()
            for dic in statuses {
                let homePageModel = HRHomePageModel(dict: dic)
                let homePageViewModel = HRHomePageStatusViewModel(homePageModel: homePageModel)
                tempArr.append(homePageViewModel)
            }
            if pullUpRefresh {
                
                //  将请求回来的数据拼接到原来数组的后面: 下面两种方法二选其一
//                self.weiBoDataArrar = self.weiBoDataArrar + tempArr
                self.weiBoDataArrar.appendContentsOf(tempArr)
               
            }else{
                //  如果是上拉刷新数据拼接在前面: 下面两种方法二选其一
                self.weiBoDataArrar = tempArr + self.weiBoDataArrar
//                self.weiBoDataArrar.insertContentsOf(tempArr, at: 0)
               
                
            }
            if tempArr.count > 0 {
                message = "加载了\(tempArr.count)条微博数据"
            }
            callBack(isSuccess: true, message: message)
            
        }
    }
}
